package com.scut.graduation.util;


public enum ResultCode {

    EXCEPTION(20010, "未知异常"),
    RUNTIME_EXCEPTION(20011, "运行时异常"),
    IO_EXCEPTION(20014, "IO异常"),
    SYSTEM_EXCEPTION(20015, "系统异常"),
    PERMISSION_DENID_ERROR(20016,"权限不足，拒绝访问"),
    /**
     * 参数错误：21000 - 21099
     */
    PARAMS_IS_INVALID(21000, "参数无效"),
    PARAMS_IS_BLANK(21001, "参数为空"),
    PARAMS_TYPE_BIND_ERROR(21002, "参数类型错误"),
    PARAMS_NOT_COMPLETE(21003, "参数缺失"),

    /**
     * 用户错误：22001 - 22999
     */
    USER_NOT_LOGGED_IN(22001, "用户未登录，访问路径需要验证，请登录"),
    USER_LOGIN_ERROR(22002, "用户名或密码错误"),
    USER_TOKEN_ERROR(22003, "用户令牌无效或过期"),
    USER_OLD_PASSWORD_INVALID_ERROR(22006, "用户修改密码错误，旧密码不正确"),
    USER_REGISTER_USERNAME_EXIST(22007, "用户注册：用户名已存在"),
    USER_REGISTER_MOBILE_EXIST(22008, "用户注册：手机号已注册"),
    USER_REGISTER_MAIL_EXIST(22009, "用户注册：邮箱已注册"),
    USER_REGISTER_PARAM_ERROR(22010, "用户注册：参数错误"),

    /**
     * 成功状态码
     */
    SUCCESS(20000, "成功"),

    /**
     * 失败
     **/
    ERROR(20001, "失败");

    // 【强制】枚举 enum（括号内）的属性字段必须是私有且不可变。
    private final Integer code;
    private final String message;

    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }


}
